ADEL()
ARRAYS
Function
ADEL(<array>,<pos>)
Shift array elements down one position from pos position
FOR i = pos TO LEN(array)-1  && equivalent
array[i] = array[i +1]
NEXT
DBU.LIB
Yes
NANTUCKET
ADIR()
ADIR(<skeleton>[,<array>])
Fill an array with filenames from disk directory
DECLARE textfiles[ADIR("*.TXT")]  && declare array size
ADIR("*.TXT", textfiles)          && fill array with names
AFILL()
AFILL(<array>,<val>[,<start> [,<count>]])
Fill many array elements with one value
FOR i = start TO start + count - 1  && Equivalent
array[i] = val
AINS()
AINS(<array>,<pos>)
Shift array elements up one position below pos
DO WHILE i > pos   && equivalent ..where i = LEN(array)
array[i] = array[i-1]
i = i - 1
ENDDO
ARRREST()
UDF
ARRREST(<filespec>,<array name>)
<expL> .T. if restored properly, otherwise .F.
Restore a Clipper array from a disk file
TR.LIB
RETTIG
ARRSAVE()
ARRSAVE(<filespec>,<array name>)
<expL> .T. if written correctly to disk, otherwise .F.
Save a Clipper array to a disk file
ARRSORT()
ARRSORT(<source array>,<target array>)
<expL> true if successful, false if not
Sort a numeric,date or logical array in ascending order
* Sort array1 to array2
IF .NOT. ARRSORT("array1","array2")
? "Error sorting array"
ENDIF
ASCAN()
ASCAN(<array>, <val> [,<start> [,<count>]])
Search for specific value within an array
FOR i = start TO start + count -1  && Equivalent
IIF array[i] = val,RETURN(1)
ATYPE()
ATYPE( <array name>[[<element number>]])
<expC> uppercase letter indicating data type (same as the
TYPE() function but adds "A" for array type
Distinguish array names from memvar names, and determine
type of an array element.
CREACHAR
CALL CREACHAR WITH <elements>,<size>,<expN3>
<expN3> -1 if memory allocation error occurs
Allocate memory for a C character array
DECLARE
Command
DECLARE <array name> [<expN>][,<array list>]
Creates a one-dimentional array, elements can be mixed.
DECLARE up_alpha[26]
FOR i = 1 TO 26
up_alpha[i] = CHR(64 +i)
CLIPPER
FREECHAR
Procedure
CALL FREECHAR
Release memory allocated by CREACHAR for C character array
PASSARR
CALL PASSARR WITH <element>,<position>
Pass a Clipper numeric,date or logical array to C for faster
processing or writing to a disk file
PASSCHAR
CALL PASSCHAR WITH <element>
Pass a Clipper character array to C for faster processing
or writing to a disk file
READARRC
CALL READARRC WITH <filespec>,<elements>,<size>,<error>
<expN3>-1 if read error occurs
Read a character array from a disk file into a C array
READARRN
CALL READARRN WITH <filespec>,<expN1>,<expN2>
<expN2> -1 if read error occurs
Read a numeric,date, or logical array from a disk file into
a C array
RETARR
CALL RETARR WITH <variable>,<array position>
Return an array from C to Clipper
RETCHAR
CALL RETCHAR WITH <memvar>
SORTARRN
CALL SORTARRN WITH <array length>
Sort a Clipper date/logical/numeric array in C
WRITARRC
CALL WRITARRC WITH <filespec>,<elements>,<size>,<error>
<expN3> -1 if write error occurs
Write a C character array to a disk file
WRITARRN
CALL WRITARRN WITH <filespec>,<elements>,<error>
<expN2> -1 if write error occurs
Write a C numeric, date, or logical array to a disk file
DEPDB()
BUSINESS
DEPDB( <value>,<rate>,<periods> )
<expN> total depreciation over <expN3> periods
Computes depreciation of an item as a percentage of its
current value
Ye
DEPSL()
DEPSL( <price>,<value>,<life>,<periods> )
<expN> total depreciation over <expN4> periods
Compute depreciation of an item by straight-line method
DEPVALDB()
DEPVALDB( <price>,<rate>,<periods> )
<expN> value of asset after specified time
Compute the depreciated value of an asset using declining-
balance method
DEPVALSL()
DEPVALSL(<price>,<value>,<life>,<time> )
<expN> value of an asset after specified time
Compute depreciated value of an asset using straight-line
method
EFFYIELD()
EFFYIELD( <rate>, <compounded> )
Effective yield (effective rate of interest)
Computes the effective rate of interest of a loan
EOQ()
EOQ( <on hand>,<demand>,<cost>,<price>,<overhand>)
<expN> economic order quantity
Compute economic order quantity of an item
INCTIME()
INCTIME( <increase>,<rate>,<compounded> )
<expN> number of years required for specified appreciation
Determine number of years for an investment to increase by
a specified amount
TOMONEY()
TOMONEY( <expN> )
<expC> of <expN> in words in the format
"... DOLLAR(S) and <n> CENT(S)"
Convert a numeric amount to words of currency
ALLTRIM()
CHARACTER
ALLTRIM(<expC>)
<expC> with leading and trailing blanks removed
Remove blanks from both ends of a string
ASC()
ASC(<expC>)
Converts the first character of a string into ASCII code
CLIPPER.LIB
AT()
AT(<expC>,<expC>)
Returns a number that shows the starting position of a
character string within another character string
ATLAST()
ATLAST(<character>,<string>)
<expN> position of last occurrence of <character> in
<string>
Determine rightmost position of character in string
ATLAST( "a","AAABBaCdda")   && Returns 10
ATLAST( "b","AAABBaCdda")   && Returns 0
ATLAST( "A","AAABBaCdda")   && Returns 3
ATNEXT()
ATNEXT(<character>,<string>,<occurrence>)
<expN> position of <occurrance> of <characters> in <string>
Determines position of <n>th occurance of char in string
ATNEXT( "A", "AAABBaCdda", 0)  && Returns 0
ATNEXT( "A", "AAABBaCdda", 1)  && Returns 1
ATNEXT( "A", "AAABBaCdda", 3)  && Returns 3
ATNEXT( "a", "AAABBaCdda", 1)  && Returns 6
CAPFIRST()
CAPFIRST( <expC>)
<expC> with the first alpha character of each new word
uppercase and all other alpha characters lowercase
Capitalize the first letter of each word, lowercase the
rest
CENTER()
CENTER( <string>, <width>)
<expC> of <string> with enough leading blanks added to
center in <width>
Center output without calculating its starting position
* Column is zero, <width> is screen size
@ ROW(),0 SAY CENTER("Hello, world!",80)
CHR()
CHR(<expN>)
Return the ASCII representation of a number
CHRCOUNT()
CHRCOUNT( <character>,<string>)
<expN> number of times <character> occurs in <string>
Determine how many times a specified character occurs in
a string
CHRFOUND()
CHRFOUND( <string1>, <string2>)
<expL> true if each character in <string1> also occurs in
<string2> in any order, otherwise false
Determine whether <string2> contains ALL the characters that
occur in <string1> regardless of the order
CHRFOUND( "cAb", "AAABBaCdda" )  && Returns .F.
CHRFOUND( "CaB", "AAABBaCdda" )  && Returns .T.
CHRFOUND( "b", "AAABBaCdda" )    && Returns .F.
CHRFOUND( "ddddd", "AAABBaCdda") && Returns .T.
CHRSWAP()
CHRSWAP( <string>,<char1> [,<char2>])
<expC> string with all occurances of <char1> replaced
Replace one character with another throughout a string, or
remove a character completely from a string
CHRSWAP( "AAABBaCdda", "A")    && Returns "BBaCdda"
CHRSWAP( "AAABBaCdda","A","Z") && Returns "ZZZBBaCdda"
CHRSWAP( "AAABBaCdda","a","z") && Returns "AAABBzddz"
CTOD()
DATE
CTOD(<expC>)
Converts a date that has been stored/entered as a
character string into a date string
DECRYPT()
DECRYPT( <expC>, <password> )
<expC> of <string> decoded according to <password>
Unprotect data that was protected with ENCRYPT()
DTOC()
DTOC(<expD>)
Converts a date variable into  a character variable
ENCRYPT()
ENCRYPT( <expC>, <password> )
<expC> of <string> coded according to <password>
Protect data from easily being read
REPLACE ALL Field WITH ENCRYPT( Field, "My Password" )
@...SAY DECRYPT( Field, "My Password" )
EXPAND
EXPAND( <string>[,<spaces>] )
<expC> string with <spaces> between each character
Expand string with spaces for headers and titles
EXPAND("Library",2)
"L  i  b  r  a  r  y"
ISALPHA()
Returns a logical .T. if specified character expression
begins with a alpha character
Evalute 1st character of an expression for alpha
? ISALPHA("ABC-123")
.T.
? ISALPHA("123-ABC")
.F.
PLUS
ISLOWER()
ISLOWER( <expC>)
Returns a logical .T. if the leftmost character of an
expression is a lowercase letter
Evaluate for lower case
? ISLOWER("aBC-234")
? ISLOWER("Abc-234")
ISUPPER()
ISUPPER( <expC>)
Returns a logical .T. if the leftmost character of string
is an uppercase, Otherwise, returns a logical .F.
Evaluate for upper case
? ISUPPER("aBC-234")
? ISUPPER("Abc-234")
LEADCHAR()
LEADCHAR( <string>,<char> )
<expC> with each leading blank space in <string> replaced
by <char>
Display a string with leading characters other than blanks
LEFT()
LEFT( <expC>,<expN>)
Returns the specified number of characters from the left
of the alphanumeric argument
Substring selection from the left side
? "Dear "+LEFT("John J. Smith",4)
Dear John
LEN()
Returns the number of characters in the alphanumeric
argument
Determines the length of a character string
? LEN("James Smith")
11
LJUST()
LJUST( <expC> )
<expC> with leading blanks moved to the end
Left justify the contents of the string within that string
LOWER()
LOWER( <expC>)
Converts upper case characters to lower case
? LOWER("THIS IS A NICE DAY")
this is a nice day
LTRIM()
LTRIM( <expC>)
Removes the leading blanks that result from the STR
function
? STR(3.145,10,2)
3.15
? LTRIM(STR(3.145,10,2))
REPLICATE()
SCREEN
REPLICATE(<expC>,<expN>)
Permits repeating a character expression a specified
number of times
@ 1,0 SAY REPLICATE("*",20)
********************
RIGHT()
SUBSTRING SELECTION FROM RIGHT SIDE
RJUST()
RJUST( <expC>)
<expC> with trailing blanks moved to the beginning
Right justify the contents of a string with a string
RTRIM()
RTRIM(<expC>)
Removes trailing blanks from a character expression just
like the TRIM() function
CLIPPER.lIB
SPACE()
SPACE(<expN>)
Creates a character string consisting of a specified
number of blank
STUFF()
STUFF( <expC1>,<start>,<chars>,<expC2> )
Replaces any part of a character string, without the need to
reconstruct the entire string
? STUFF('abc',2,1,'xyz')  && Retruns 'axyzc'
? STUFF('abc',2,1,'' )    && Returns 'ac'
? STUFF('abc',2,0,'xyz')  && Returns 'axyzbc'
SUBSTR()
SUBSTR(<expC>,<start position>[,<number of chars>]
Extracts a specified part of a character string
TRIM()
TRIM(<expC>)
TRIM removes trailing blanks from a character string
UPPER()
UPPER(<expC>)
Converts lower case characters into upper case characters
VAL()
VAL(<expC>)
Converts a string character into a numeric expression
WRAP()
WRAP( <expC>,<max len> )
<expN> position of last blank space before <max len>
Break a long string for output within a specified line
length
ALIAS()
DATABASE
ALIAS([expN])
Returns the alias of a SELECT area
USE invoice
SELECT 2
USE client
? ALIAS(1),ALIAS()  && Returns "invoice client"
APPEND
APPEND [scope][<fieldlist>]FROM<file>[FOR/WHILE]<condition>
Adds records from other files to database files
APPEND BLANK
Adds blank records to the end of the database file
APPEND FROM
ADDS RECORDS FROM OTHER FILES
USE File2
APPEND FROM File1
SUPPORTS FIELD LIST AS OPTIONAL ARGUMENT
BOF()
Returns a logical .T. if the record pointer is at the
beginning of the file
BROWSE
Interactive
Allows Edit,Delete, Add to a database
Displays 17 records per screen
CHANGE
CHANGE FIELDS <field list>
Edits specified data fields sequentially, with or
without a qualifier
USE Employee
CHANGE FIELDS Annual_pay   && or
CHANGE FIELDS Area_code,Phone_no FOR Area_code="206"
CLOSE
SYSTEM
CLOSE [ALTERNATE/DATABASES/FORMAT/INDEXES/PROCEDURE]
Closes the specified type of file
CONTINUE
MISC
Positions pointer to next record meeting LOCATE conditions
COPY FILE
COPY FILE <filename> TO <filename>
Duplicates any kind of file
COUNT
COUNT [<scope>] [FOR/WHILE <condition>] TO <memvar>
Tallies number of records that meet a specific condition
COUNT TO Nrecords
COUNT FOR Annual_pay>="50000" .AND. Male TO Richmen
CREATE FROM
CREATE <new file> FROM <structure extended file>
Create forms a new database file from CREATE command file
CREATE
CREATE <.dbf file name>
Creates an empty structure extended file with 4 field
CREATE QUERY
CREATE QUERY <filename>
Creates a new query file (.QRY)
CREATE QUERY Findempl.qry
CREATE VIEW
CREATE VIEW <filename>
Creates a new view file (.VUE)
CREATE VIEW sample.vue
DELETE
DELETE [<scope>] [FOR/WHILE <condition>]
Flags the designated records for deletion
DELETED()
Returns a value of true or false whether a record has been
deleted
DISPLAY
DISPLAY [OFF] <field list> [FOR/WHILE <condition>]
Displays records from the active database
DISPLAY STRUCTURE
DISPLAYS STRUCTURE OF A DATABASE FILE IN USE
No
EDIT
EDIT [<scope>][FIELDS <list>][FOR/WHILE <condition>]
Alters data fields in a database
dBASE PLUS
EOF()
END-OF-FILE
NANTUCKET/AT
ERASE
DISK
ERASE <filename>
Delete the specified file from the directory
EXPORT
CREATES A PFS FILE FROM A DATABASE
FCOUNT()
Returns the number of fields in the current database
FOR i TO FCOUNT()
? FIELDNAME[i]
FIELD()
NAMES OF FIELDS IN DATABASE FILES
FIELDNAME()
DATABASE Fun
FIELDNAME(<expN>)
The name of any field within the currently active
database
Newfield = FIELDNAME(7)
? Newfield
FIND
FIND <character string>
Positions pointer to 1st record whose key matches string
FLDCOUNT()
<expN> integer number of fields in the currently selected
database file
Determine the number of fields in a database file
FOUND()
Returns .T. if a previous SEEK, FIND, LOCATE, or
CONTINUE was successful
SEEK memvar
IF .NOT. FOUND()
? "Record not in file"
GETAREA()
GETAREA( <workarea>, <function> )
Result of <function> in <workarea>
Obtain the result of a function from other than the
currently selected workarea
GO
GO/GOTO BOTTOM/TOP/<expN>
Positions pointer directly to specified record
HEADER()
Determine size of a database file header
IMPORT
CREATES DATABASE AND FORMAT FILES FROM PFS FILES
INDEX
INDEX Comman
INDEX ON <exp> TO <.ntx file name>
Causes database to appear to be sorted with specified key
INDEXKEY()
INDEXKEY(<expN>)
Return the KEY expression of an index where <expN> is the
placement in the index list
USE Customers INDEX Name,Serial
SET ORDER TO 2
? INDEXKEY(1)       && Returns Name.ntx key expression
? INDEXKEY(0)       && Returns Serial.ntx key expression
JOIN
JOIN WITH <alias> TO <new file> FOR/WHILE <condition>
Combines specified records and fields from two databases
LABEL FORM
LABEL FORM <.lbl file> [SAMPLE][<scope>][TO PRINT]
Prints labels using the specified label form file
LASTREC()
Returns the number of records in the curently active
? "RECORDS IN FILE = ",LASTREC()
LIST
LIST [OFF][scope]<field list> [FOR/WHILE <condition>]
Lists the contents of a database file
LOCATE
LOCATE [<scope>] [FOR/WHILE <condition>]
Positions to a record that meets a specified condition
LUPDATE()
The date of the last update of the currently selected
Show when a database file was last updated
? LUPDATE()
06/27/86
MODIFY QUERY
MODIFIES A QUERY FILE
MODIFY STRUCTURE
CREATES A BACKUP OF A DATABASE FILE OR MEMO FILE
MODIFY VIEW
MODIFIES A VIEW FILE
NDX()
NAMES OF OPEN INDEX FILES
NDXSIZE()
INDEX UDF
NDXSIZE( <key size>,<number of records> )
<expN> maximum number of bytes in target index file that
could result from INDEX on <key> TO <TARGET>
Determine potential max size of a dBASE 3 PLUS index file
NEXTAREA()
Lowest available work area as <expN> integer
Obtain the next available work area
NTXSIZE()
NTXSIZE( <key size>,<number of records> )
<expN> number of bytes in INDEX ON <key> expression
Determine potential maximum size of a Clipper index file
PACK
Removes database records marked for deletion
RECALL
RECALL [<scope>] [FOR/WHILE <condition>]
Reinstates records marked for deletion
RECNO()
Permits access to the current record number of the selected
file
RECOUNT()
NO. OF RECORDS IN DATABASE
RECSIZE()
SIZE OF RECORD
REINDEX
Rebuilds existing active index files
RENAME
RENAME <current file name> TO <new file name>
Provides a new name to an existing file
REPLACE
DATABASE Com
REPLACE [<scope>]<field> WITH <exp>[FOR/WHILE <condition>]
Changes contents of data fields to specified values
SEEK
SEEK <expression>
Positions pointer to 1st record that matches expression
SELECT
SELECT <work area/alias>
Select 0 selects first unused area
USE accounts
USE temp
SELECT accounts
SET CATALOG TO
SET CATALOG TO [ <.cat filename>/?]
CREATES A NEW CATALOG
SET INDEX TO
SET INDEX TO <.ntx file list>
Opens the specified index file
SET ORDER
SET ORDER TO <expN>
Sets up any open index file as primary, without the need
to close and reopen the files
SET UNIQUE
SET UNIQUE on/OFF
Causes first/ALL record(s) with identical keys to be indexed
SKIP
CLIPPER Comm
SKIP <expN>
Positions pointer forward or backward
SKIP <expN> [ALIAS <selection>]
SKIP 0 Writes dbf buffer,ALIAS moves pointer unselected file
SKIP ALIAS 4  is the same as
SELECT 4
SELECT 1
SORT
CREATES A SORTED VERSION OF THE ACTIVE DATABASE FILE
CREATES A COPY OF A DATABASE FILE TO BE USED
STREET()
STREET( <street address> )
<expC> street name from <street address>
Order a database by street name
TOTAL TO
TOTAL TO <filename> ON <key> [scope] [FIELDS<fieldlist>]
Creates a summary database containg numeric fields
UPDATE
ALLOWS BATCH UPDATES OF A DATABASE
USE
Specifies database to be used until another USE
ZAP
Removes all records from the active database file
BOQTR()
BOQTR( <expD>)
<expD> first day of the calendar quarter in which the
parameter date falls
Determine the beginning of the current calendar quarter
Return date      Dates between
01/01/yy         01/01 - 03/31
04/01/yy         04/01 - 06/30
07/01/yy         07/01 - 09/30
10/01/yy         10/01 - 12/31
BOW()
BOW( <expD>)
<expD> Monday of the week in which the parameter date
falls
Computer the beginning of the current week
* Compute beginning of current week
m_weekbeg = BOW( DATE())
CDOW()
CDOW(<expD>)
Returns the name of the day of the week from a date
variable
CDTOS()
CDTOS( <expC date>, <format>)
<date string> of <expC date> in the format "YYYYMMDD"
Convert a character type date to a date string where it can
be validated and converted to a date type
* All December 10, 1986 and return "19861210"
CDTOS( "121086", "MMDDYY" )
CDTOS( "86/12/10", "YY/MM/DD" )
CDTOS( "10.12.1986", "DD.MM.YYYY" )
CMONTH()
CMONTH(<expD>)
Returns the name of the month from a date variable
* If today is 06/01/87
? CMONTH(DATE())
June
CMONTHN()
CMONTHN( <month>)
<expC> name of month, lowercase with initial capital
Null if <month> is less than 1 or greater than 12
Get the character name of the month from a numeric month
parameter
conception = DATE()
add_months = 9
due_month = ((MONTH(conception)-1 + add_month) %12) +1
? "Your baby is due in the month of " + CMONTHD(due_month)
DAY()
DAY(<expD>)
Returns the numeric value of the day of the month from a
date variable
? DAY(CHRISTMAS)
25
DOW()
DOW(<expD>)
Returns a number that represents the day of the week from
a date variable
* If today is Saturday June 6th
? DOW(DATE())
6
DTOS()
DTOS(<expD>)
Returns a string in YYYYMMDD format.  This can be used to
index on a date + character expression
xmas = CTOD("12/25/87")
? DTOS(xmas)    &&Returns "19871225"
EOQTR()
EOQTR( expD> )
<expD> last day of the calendar quarter in which the
Determine the end of the current calendar quarter
EOW()
EOW( <expD>)
<expD> Sunday of the week in which the parameter date falls
Compute the end of the current week
INMONTHS()
INMONTHS( <start>,<end> )
<expN> number of months between two dates
Determine the number of months between two dates
INWEEKS()
INWEEKS( <start>,<end> )
<expN> number of weeks between two dates
Determine the number of weeks between two dates
INWKDAYS()
INWKDAYS( <start>,<end> )
<expN> number of non_weekend days between two dates
Determine the number of non-weekend days between two dates
ISDSDATE()
ISDSDATE( <date string> )
<expL> true if <date string> is valid in format and contents
otherwise false
Determine if a date string is valid
ISLEAP()
ISLEAP( <expD>/<year> )
<expL> true if <date> or <year> are a leap year, otherwise
false
Determine if a date is in a leap year
ISWKEND()
ISWKEND( <expD> )
<expL> true if date is a Saturday or Sunday, otherwise
Determine if a date is on a weekend
LASTDAY()
LASTDAY( <month>,<year> )
<expN> last day of the month
Determine date of the last day of the month
MAKEDATE()
MAKEDATE(<date string>[,<months>]
Valid <expD> of <date string>, even if <date string> is
invalid date, plus or minus <months>
Make an invalid date string valid and (+) or (-) months
MONTH()
MONTH OF YEAR
NTOD()
NTOD( <year>,<month>,<day> )
<expD> date type of <year>,<month> and <day>
Convert numeric date parameters to date type
QUARTER()
QUARTER( <expD>)
<expN> quarter of the year corresponding to <expD>
QUARTER OF YEAR OF SPECIFIED DATE
STOD()
STOD( <date string> )
<expD> date type of <date string>
Convert date string to date type
WEEKDAYS()
WEEKDAYS( <date>,<days> )
<expD> of <date> plus or minue <days> NOT counting weekends
Add or subtract non-weekend days to or from dates
YEAR()
YEAR(<expD>)
Returns the complete numeric value of the year from a
DISPLAY HISTORY
DEBUG
Displays the commands stored in HISTORY
INT3
CALL INT3
Inserts a breakpoint into a program for machine-language
debugging or analysis
LIST HISTORY
LIST HISTORY [LAST,<expN>][TO PRINT]
Lists commands that are stored in the HISTORY mode.  It
scrolls without pausing at each full-screen display
MEMDUMP
CALL MEMDUMP WITH <exp>
Views memory byte-by-byte in hex and ASCII form
RESUME
PROGRAM
Causes a SUSPENDed program to resume execution
SET DOHISTORY
SET DOHISTORY on/OFF
Determines whether commands from command files are recorded
in HISTORY as they execute, default = OFF
AT
SET HISTORY TO
SET HISTORY TO <expN>
Specifies the number of executed commands stored in HISTORY
CURDIR()
CURDIR( <drive letter>)
<expC> optional letter of drive to examine
Get name of current disk directory
m_drive = SPACE(1)
@ 12,10 SAY "Enter drive letter: ";
GET m_drive VALID ISDRIVE( m_drive )
READ
directory = CURDIR( m_drive)
CURDRIVE()
<expC> current drive as uppercase letter
Determine currently logged in drive
DIRMAKE()
DIRMAKE( <directory> )
<expL> true if directory exists, false if the directory
could not be created
Create a directory if it does not already exist.  Useful
in installation programs
DISKSPACE()
Returns an integer representing the number of bytes
available on the default disk drive
? DISKSPACE()
309248
FILE()
FILE(<file name>)
FILE verifies the existence of a specified file
ISDRIVE()
ISDRIVE( <drive> )
<expL> true if drive exists and is working, otherwise false
Determine if a specified disk drive exists and is ready
ISFIXED()
ISFIXED( <drive> )
<expC> drive letter, uppercase or lowercase
Determine if a specified disk drive is a hard disk, useful
in backup and installation programs
DISPLAY STATUS
DISPLAYS CURRENT INFORMATION ABOUT THE FILES IN USE
SELECT()
Returns the numeric value of thw currently selected area
IF SELECT() =1
@ 23,0 SAY "Editing main file"
ELSE
@ 23,0 SAY "Editing customer file"
SET ALTERNATE TO
SET ALTERNATE TO <file name>
Creates a file for saving output
SET ALTERNATE
SET ALTERNATE on/OFF
Sends/DOES NOT SEND output to a file
SET BELL
SET BELL on/OFF
Bell rings/DOES NOT RING during data entry operation
SET CARRY
SET CARRY on/OFF
Writes/DOES NOT WRITE last record into an APPEND
SET CATALOG
SET CATALOG ON/off
ADDS/does not add files to the open catalog
SET CENTURY
SET CENTURY on/OFF
Shows/DOES NOT SHOW the century in date displays
SET COLOR
SET COLOR ON/OFF
Switches between color and monochrome monitors on systems
with both types.  Default = system monitor
SET COLOR TO
SET COLOR TO [<standard>[,<enhanced>][,<border>][<background
Sets screen displays attributes
SET CONFIRM
SET CONFIRM on/OFF
Requires/DOES NOT REQUIRE the carriage return
SET CONSOLE
SET CONSOLE ON/off
SENDS/suspends all output to the screen
SET DATE
SET DATE American/Ansi/British/Italian/French/German
Determines the format for date expressions
SET DEBUG
SET DEBUG on/OFF
Sends/DOES NOT SEND output of ECHO to the printer
SET DECIMALS TO
NUMERIC
SET DECIMALS TO <expN>
Determines the minimum number of decimals displayed
SET DEFAULT TO
SET DEFAULT TO <drive>
Specifies the default drive for file operations
SET DELETED
SET DELETED on/OFF
Does not display/DISPLAYS records marked for deletion
SET DELIMITERS TO
SET DELIMITERS TO [<character string>]/[DEFAULT]
Specifies delimiters for fields and variable displays
SET DELIMITERS
SET DELIMITERS on/OFF
Displays full-screen fields in normal video/REVERSE VIDEO
SET DEVICE TO
SET DEVICE TO SCREEN/print
Sends  @..SAY command output to the SCREEN/printer
SET ECHO
SET ECHO on/OFF
Displays command lines from program on the screen and/or
the printer during execution, default = OFF
SET ESCAPE
SET ESCAPE ON/off
The default is ON, where:
ON  =  <Esc> from GET...READ ignores VALID and Alt-C
allows for program termination.
OFF =  Will not allow an escape to terminate a READ.  In
addition, the Alt-C is ignored.
With SET ESCAPE ON, the ESC key interupts the program
With SET ESCAPE OFF, the ESC is disabled
*** INTERRUPTED ***
Called from <filename.prg>
what now - Cancel, Ignore, Suspend?(C,I, or S)
SET EXACT
SET EXACT on/OFF
Requires/DOES NOT REQUIRE exact matches in char comparison
SET FIELDS TO
SET FIELDS TO [<field list>/ALL]
Defines a list of fields that may be accessed in one or
more files
SET FIELDS
SET FIELDS on/OFF
If SET FIELDS is OFF all fields in database are available
If SET FIELDS is ON, only fields in SET FIELDS TO are seen
SET FILTER TO
SET FILTER TO [<condition>]
Filters out database records not satisfying the condition
SET FIXED
SET FIXED on/OFF
Fixes/DOES NOT FIX the number of decimals to be displayed
SET FORMAT TO
SET FORMAT TO <.fmt file name>
Opens a format file for data entry
CLIPPER does not clear the screen before executing format
files.  However commands are allowed in format files.  When
use .CLP files with a program that has SET FORMAT TO
statements, the .FMT files must have .PRG file extensions.
SET FORMAT TO [<filename>/?]
SET FUNCTION
SET FUNCTION <expN> TO <character string>
Used to re-program function 2 through 40
SET HEADING
SET HEADING ON/off
Field names DISPLAY/do not in LIST or DISPLAY
SET HELP
SET HELP ON/off
PROMPTS/does not prompt user for help when an error occurs
SET HISTORY
SET HISTORY ON/off
Turns command history feature on and off
SET INTENSITY
SET INTENSITY ON/off
SETS ON/sets off the reverse video in full-screen operations
SET KEY
SET KEY <expN> TO [<proc>]
Allows a procedure to be executed from any wait state
A wait state is defined as any command that pauses program-
WAIT, READ, ACCEPT, INPUT, MENU TO
Note that INKEY() is not a wait state
SET MARGIN TO
PRINTER
SET MARGIN TO <expN>
Sets the left margin of a printer
SET MEMOWIDTH TO
MEMO
Adjusts the column width of a memo field output
Default width is 50
SET MENUS
SET MENUS ON/off
DISPLAYS/does not display a cursor key menu during full
screen commands
SET MESSAGE
SET MESSAGE TO <expN>
Allows a related message fot each PROMPT to be displayed,
message will appear on line <expN>
SET ORDER TO
ENVIRON
Sets up any open index file as the controlling file, where
<n> is the number of the file in the index series
USE Employee INDEX Lastname.ndx,Payrank.ndx,Areacode.ndx
SET ORDER TO 3
SET PATH TO
SET PATH TO [<path list>]
Specifies path for file search
SET PATH TO C:\DBDATE\SALES
SET PRINT
SET PRINT on/OFF
Sends/DOES NOT SEND output to a printer
SET PRINTER
NETWORK
SET PRINTER TO <destination>
Sets print output to LPT1,LPT2,COM1,COM2,file
SET PRINTER TO LPT1
SET PRINTER TO Accounts.prn
SET PROCEDURE TO
SET PROCEDURE TO <procedure file name>
Opens a named procedure file during compilation
SET RELATION TO
SET RELATION TO <key exp> INTO <alias>
Links two databases according to a key expression
SET SAFETY
SET SAFETY ON/off
PROMPTS/does not when a file is about to be overwritten
SET SCOREBOARD
SET SCOREBOARD ON/off
dBASE III/Clipper messages APPEAR/do not on the status
line
SET STEP
SET STEP on/OFF
Halts/DOES NOT HALT execution after each command processed
SET TALK
SET TALK ON/off
SENDS/does not send the results of commands to the screen
SET TITLE
SET TITLE ON/off
PROMPTS/does not prompt for a catalog file title
SET TYPEHEAD
SET TYPEHEAD TO <expN>
Specifies the size of the type-ahead buffer
SET VIEW TO
SET VIEW TO <.vue filename>
Opens a view (.vue) file
LINES()
LINES( <expC>, <line length> )
<expN> number of lines required to display <expC> within
<line length> columns
Determine number of lines in output at a specified line
TABSTRIP()
TABSTRIP( <expC> [,<spaces per tab>] )
<expC> with tab characters replaced by spaces
Eliminate tab characters from text
WPSTRIP()
WPSTRIP( <expC> [,<spaces per tab>])
<expC> with tab, line-feed, and carriage-return characters
replaced by spaces
Eliminate word-processing characters from text
ACCEPT
ACCEPT [<prompt>] TO <memvar>
Stores a character string in a memory variable
ACCEPT "Enter your last name...." TO LASTNAME   && or
ACCEPT TO LASTNAME
AVERAGE
AVERAGE <fieldlist> TO <memvarlist> [FOR/WHILE <condition>]
Computes the arithmetic mean of multiple expressions
CLEAR ALL
Closes all database, index, format files & erases memvars
CLEAR MEMORY
Erases current memory variables
DISPLAY MEMORY
DISPLAYS CURRENT MEMORY VARIABLES
Permits data entry to a GET field or variable
RELEASE
RELEASE [<memvar>] [ALL [LIKE/EXCEPT <skeleton>]]
Erase current memory variables
RESTORE FROM
RESTORE FROM <.mem file name> [ADDITIVE]
Retrieves sets of saved memory variables
SAVE TO
MEMVAR Comma
SAVE TO <.mem filename> [ALL LIKE/EXCEPT <skeleton>]
Copies current memory variables to a memory file
STORE
STORES EXPRESSIONS INTO MEMORY VARIABLES
WAIT
ACCEPTS A SINGLE CHARACTER INTO A MEMORY VARIABLE
ASSIST
MENU-DRIVEN
BLANK()
BLANK( <exp>)
Empty value of <exp>
Obtain an empty value of any data type expression
CREATE LABEL
CREATE LABEL <filename>
Displays a design form to set up a label file (.LBL)
CREATE LABEL Maillist
CREATE REPORT
CREATE REPORT <filename>
Displays a design form to set up a report form file (.FRM)
CREATE REPORT Weekly
CREATE SCREEN
CREATE SCREEN <filename>
Creates a new screen file (.SCR)
CREATE SCREEN Showempl.scr
FKLABEL()
FKLABEL( <expN> )
<expC> contains the name of the function key whose number
corresponds to the numeric expression
Idenifies how the function keys are programmed
FKMAX()
<expN> represents the number of programmable function key
on the terminal
Allows programmers to set the function keys to suit the
terminal in use
HARDCR()
HARDCR(<expC>)
Returns the char expression with all soft carriage returns
CHR(141), replaced with carriage returns CHR(13)
? HARDCR(notes)
MEMO.LIB
LABEL
DISPLAYS DATA IN THE FORM OF LABELS
MODIFY COMMAND
CREATES A COMMAND, FORMAT OR PROCEDURE FILE
MODIFY LABEL
EDITS A LABEL FORM FILE
MODIFY REPORT
MODIFIES A REPORT FORM FILE
MODIFY SCREEN
MODIFIES A SCREEN FILE
PASSWORD()
PASSWORD( <expC> )
<expN> in the range from eight to ten characters
Store a password so that it cannot be read
REPORT FORM
REPORT FORM <.frm filename> [<scope>][FOR/WHILE <condition>]
Displays a tabular report of data
STATUS()
STATUS( <SET parameter> )
<expC> or <expN> depending of SET parameter passed
Retrieve the current value of the specified SET parameter
VERSION()
DBASE III PLUS VERSION NUMBER
ABS()
ABS(<expN>)
Returns the absolute value of an numeric expression
Provides an absolute value function
COMPUTES AND DISPLAYS THE ARITHMETIC MEAN
BASE()
BASE(<base>,<decimal number>)
<expC> value of <decimal number> in math format of <base>
Convert a decimal number (base 10) to another number base
BASE10()
BASE10(<base>,<base number>)
<expN> decimal number (base 10) of <base number>
Convert a different base value to decimal number (base 10)
BIN()
BIN(<expN>)
<expC> binary value of <expN>
Convert a decimal number to binary (base 2)
CEILING()
CEILING( <expN>)
Integer just above <expN>
Obtain an integer grater than <expN>
CEILING( 2.1 )  && Returns 3
CEILING(  .3 )  && Returns 1
CEILING(-0.3 )  && Returns 0
CEILING(-2.9 )  && Returns -2
DEC()
DEC( <hex string>)
<expN> decimal value of <expC> hex value, or zero if there
is an invalid character in <expC>
Convert a hexidecimal number (base 16) to a decimal
number (base 10)
EXP()
The exponential value of the numeric argument
Permits use of exponential functions
? EXP(1.00000000)
2.71828183
EXPONENT
EXPONENT( <expN> )
Power of 2 used to represent <expN>
Determine memory representation of <expN>
? EXPONENT( 100 )
FACT
FACT( <expN> )
Product of all numbers between <expN> and 1
Determine factorial of number
m_number = 13
? FACT(m_number)
FLR()
FLR( <expN> )
Integer just below <expN>
Obtain an integer less than <expN>
HEX()
HEX( <expN> )
<expC> hexadecimal value of <expN>
Convert a decimal number to hexadecimal (base 16)
INFINITY()
The bit pattern used by the 8087/80287 to represent
infinity (7F F0 00 00 00 00 00 00)
Provide an error return value for mathematical functions
INT()
INT(<expN>)
Converts any numeric expression into an integer
LOG()
LOG( <expN> )
LOG returns the natural logarithm of a given number
LOGARITHM
LOGNBASX()
LOGNBASX( <number>,<base> )
the logarithm of the <expN> to the base <expN2>
Give access to logarithms other than the natural logarithm
LOGTEN()
LOGTEN( <expN> )
Logarithm of <expN> to the base 10
Provide access to logarithms in the decimal system
MANTISSA()
MANTISSA( <expN> )
Number between 1 and 1.9999999... which is multiplied by
the power of 2 necessary to product <expN>
MAX()
MAX( <expN1>,<expN2>)
The higher value of two numerical expressions
Locates the greater of two values
MIN()
MIN(<expN>/<expD>,<expN>/<expD>)
Returns the lesser value of two numeric or date expressions
MOD()
MOD( <expN1>,<expN2>)
a number representing the remainder of <expN1> divided
by <expN2>
Provides modulus math operations
POWER()
POWER( <number>,<power> )
<expN1> number being raised to <power>
Raise a number to a power
ROOT()
ROOT( <number>,<root> )
<expN> which is the <expN2> root of <expN1>
Compute cube roots, fifth roots, etc
ROUND()
ROUND(<expN>,<decimals>)
Returns the rounded number to a specified number of
decimal places
SQRT()
SQRT(<expN>)
Returns the square root of a given positive number
STR()
STR(<expN>[,<length>[,<decimals>]])
Converts a numeric expression into a character string
SUM
SUM <fieldlist> TO <memvar> [FOR/WHILE <condition>]
Totals fields with an active database file
EJECT
a form feed (ASCII 12) to the printer
Ejects a page on the printer
ISPRINTER()
<expL> true if parallel printer is on-line and ready,
Determine if printer is ready to accept to accept output
LPTSWAP
CALL LPTSWAP
Switches output between two printers (Assumes LPT1 & LPT2)
PRNSTATUS()
<expN> parallel printer status code
Determine printer status
PRTSC
CALL PRTSC
Send current screen image to print
SETPRC()
CLIPPER Func
SETPRC(<expN>,<expN>)
SETS the internal PROW() and PCOL() values to specified
values
TOF()
<expL> true if printer is at top-of-form, otherwise false
Detect if printhead is positioned at top-of-form
&
MACRO
&<character variable>
Use anywhere in DO WHILE statement, nesting, recursion
?
? <exp list>
Displays an expression list on the next line of the CRT
@...BOX
@ <top,left,bottom,right> BOX <string>
Draw and fill box with any CHR() to frame menus,draw boxes
@...PROMPT
@ <row,col> PROMPT <expC> [MESSAGE <expC>]
Places menu selections on screen at the row,col location
@...SAY
@ <row,col> [SAY <exp> [PICTURE <clause]] VALID <exp>]
Displays user-formatted data on the screen or printer
@...TO
DRAWS A BOX
@..SAY..GET
@ <rol,col> [SAY <expC> [PICTURE <clause>]] [GET <exp>]
Supports- [RANGE <exp,exp>]
Supports- [VALID <exp>]] [CLEAR]
Displays/inputs data, prompts for input util expression .T.
CALL
Program
CALL  <process> WITH <exp> [WITH WORD(<expN>)]
CALL SEPARATELY COMPILED OR ASSEMBLED ROUTINES [WITH WORD()]
CANCEL
Aborts program execution and returns to DOS control
DO
CAUSES A PROGRAM OR PROCEDURE TO BE EXECUTED
DO CASE
DO CASE...CASE...[OTHERWISE]...ENDCASE
Permits execution of several possible paths (CASES)
DO WHILE
DO WHILE...ENDDO
Permits structured loops in programs
EMPTY()
EMPTY(<exp>)
Function evaluates TRUE if char is a null,num is 0, logical
is .F., and if a date is blank
acct_no = SPACE(6)
@ 1,0 SAY "Enter account" GET acct_no
IF EMPTY(acct_no)
RETURN
ERROR()
PROGRAMMG
NUMBER FOR ON ERROR CONDITION
EXIT
Escapes a DO loop without terminating the program
EXTERNAL
DECLARE A SYMBOL FOR THE LINKER
FOR NEXT
FOR <memvar> = <expN> TO <expN> [STEP <expN>]...NEXT
Loops in optional increments or decrements
FUNCTION
FUNCTION <name>...RETURN <value>
Declares user-defined functions
IF
IF...[ELSE]...ENDIF
Allows conditional execution of commands in a program
IF()
IF(<exp1>,<exp2>,<exp3>)
Conditional processing of expressions. IIF() also supported
* To add "am" or "pm" to Time
? TIME() + IF(TIME() < "12","am","pm")
IIF()
IIF(<expL>,<exp1>,<exp2>)
Provides a means of creating a conditional expression with
out using the IF...ENDIF command structure
INKEY()
INKEY(<expN>)
Returns the ASCII code for a key pressed, INKEY(0) halts
til a key is pressed, INKEY(n) waits n sec or til keypress
? "Copyright 1987 EMULSIFIED SOFTWARE"
? INKEY(0)          && Halt execution
CLEAR               && til key press then clear screen
KEYBOARD
KEYBOARD <expC>
Stuffs keyboard buffer with given string then flushes buffer
* To return to main menu from three levels deep
KEYBOARD "Q"+CHR(13)+"Q"+CHR(13)+"Q"+CHR(13)
LASTKEY()
Returns the ASCII code for the last key pressed, including
control keys
last_key = LASTKEY()
IF last_key <> 27
LOOP
LOOP returns control to the beginning of a DO WHILE...ENDDO
program structure
MEMOEDIT()
MEMOEDIT(<expC>,[<expN>,<expN>,<expN>,<expN>][,<expL>])
Edit memos, <expC>=memo,<expN>=4 coordinates of window,
<expL>=an update flag
* edit current memo
REPLACE memo_field WITH MEMOEDIT(memo_field,5,10,20,69,.T.)
* display current memo
REPLACE memo_field WITH MEMOEDIT(memo_field,5,10,20,69,.F.)
MEMOREAD()
MEMOREAD( <filename> )
Returns the contents of a text file read from disk
Reads the contents of a text file into a memofield
*  Notes is a memofield
REPLACE Notes WITH MEMOREAD("Temp.txt")
MEMOTRAN()
MEMOTRAN( <expC>[,hard-fix][soft-fix])
Returns <expC> with carriage return/line feed replaced
CHR(13)+CHR(10)=[hard-fix], CHR(141)+CHR(10)=[soft-fix]
To strip all the formatting characters from a memofield
REPLACE Notes WITH MEMOTRAN(Notes,"  ","  ")
MEMOWRIT()
MEMOWRIT( <filename>,<expC> )
Returns a logical True .T. if successful
Writes a character string to the specified disk file
status = MEMOWRIT("Temp.txt",Notes)
IF status
RUN Editor Temp.txt
MESSAGE()
The error message character string
On error message string
PARAMETERS
PARAMETERS <memvar list>
Specifies optional values that can be passed to a procedure
PCOL()
PRINTER COLUMN POSITION
PCOUNT()
Returns the number of parameters that have been passed
from the command line or another procedure
Count parameters passed to a procedure
PARAMETER file
IF PCOUNT() =0
ACCEPT "File to use:" TO file
USE &file
PRIVATE
PRIVATE <memory variable list>
Hides memory variables from higher level command files
PROCEDURE
PROCEDURE <procedure name>
Marks the beginning of each routine in a procedure file
PROCLINE()
Returns the source code line number of the current
program or procedure
PROCNAME()
Returns the name of the current program or procedure
that is being executed
PROW()
Returns the current row on the printer
PUBLIC
PUBLIC <memory variable list>/Clipper
Makes memory variables global
QUIT
Closes all files and exits from Clipper
READKEY()
FULL-SCREEN EXITING KEYPRESS
READVAR()
Returns the name of the current GET/MENU variable or a
null string if none if pending
RETRY
RETURNS TO CALLING PROGRAM AND REEXECUTES SAME COMMAND
Ends a program.
SUSPEND
HALTS EXECUTION OF .PRG AND PRESENTS DOT PROMPT
TEXT
SCREEN Comma
TEXT...ENDTEXT
Displays a block of text date in a command file
TYPE()
Returns the data type of a memory variable or database
field
UPDATED()
Will return .T. if last READ changed any of the data
in the associated GETs
IF UPDATED()
REPLACE ID WITH m_ID
@..TO
@ <row,col> [CLEAR] TO <row2,col2> [DOUBLE]
Draws a single or double line boxes or lines.  Also CLEARs
an area of the screen
BIOSATTR()
Obtain the current screen attributes from the ROM BIOS
CLEAR
Erases or clears the CRT screen
COL()
Returns the current column position of the cursor on the
screen
? COL()
5
CURSOR
SCREEN UDF
CALL CURSOR WITH <"on"/"off">
Toggle the cursor on and off
@ ....PROMPT "..."
CALL CURSOR WITH "off"
MENU TO foo
CALL CURSOR WITH "on"
MENU
MENU TO <memvar>
Highlights an @..PROMPT and places prompt value in memvar
@  8,10 PROMPT "ADD"
@  9,10 PROMPT "EDIT"
@ 10,10 PROMPT "Maintenance"
MENU TO choice
RESTORE SCREEN
RESTORE SCREEN [FROM <memvar>]
Restores multiple screens saved with SAVE SCREEN TO <memvar>
RESTSCR()
RESTSCR( <filespec> [,<memvar name>])
<expC> false if file not found, otherwise true
Read disk file directly into screen
ROW()
Returns the current row location of the cursor
SAVESCR()
SAVESCR( <filespec> [,<memvar name>])
<expL> true if file successfully written, otherwise false
Save current screen to disk file for later use
SCRATTR()
<expC> uppercase letter value of current SET COLOR
Obtain the current SET COLOR values
scr_value = SCRATTR()
<code that changes the screen>
* Restore original screen
SET COLOR TO &scr_value
SCROLL
CALL SCROLL WITH <TLrow>,<TLcol>,<BRrow>,<BRcol>,<lines>,U/D
Scroll within a specified area on the screen
* Clear all but screen border area
CALL SCROLL WITH 1,1,22,78,0,"U"
* Scroll box in middle of screen 3 lines down
CALL SCROLL WITH 10,30,14,50,3,"d"
SET COLOR TO [<standard>[,<enhanced>[,<border>]]]
Sets screen display attributes
TRANSFORM()
TRANSFORM(<exp>,<picture>)
Returns a character string with the specified picture
? TRANSFORM( 123456789, "###,###,###")
*  Returns 123,456,789
ALLOCATE()
ALLOCATE(<bytes>)
<expC> 4-byte hex address of 1st segment.  Null <expC> if
memory cannot be allocated
Provide private memory area to store data outside Clipper
m_buffer = ALLOCATE( 1024 )
IF "" = m_buffer    && null means an error
<error message>
RETURN           && abort this routine
BUFFERS()
<expN> number of buffers on the BUFFERS= line in
Config.sys
Determine setting of BUFFERS in Config.sys
m_buffers = BUFFERS()
IF m_buffers = -1
? "ERROR --- cannot find Config.sys
IF m_buffers < 10 .OR. m_buffers > 15
? "ERROR --- set BUFFERS between 10-15 in Config.sys
Executes a binary file (module) placed in memory with LOAD
COUNTRY()
<expN> code on COUNTRY= line in Config.sys
Zero (default) if COUNTRY not specified, -1 if no Config.sys
Determine setting of COUNTRY in Config.sys
Y
DATE()
DATE/SYSTEM
Returns the system date in the form mm/dd/yy
DEALLOC()
DEALLOC( <address>)
<expL> true if successful, otherwise false
Release memory allocated with ALLOCATE()
DIR
DIR [<drive>:] [<path>] [<skeleton>]
Displays names of files on the specified disk drive
DOSFUNC
Process
CALL DOSFUNC WITH <registers>, <flags>
<expC> is altered to contain contents of registers after
INT 21H function call
Provide access to INT 21H DOS function calls
CALL DOSFUNC WITH m_regs,m_flags
IF m_flags %2 = 1
? "Invalid country code"
DOSVERS()
<expC> DOS version number
Determine which version of PC-DOS or MS-DOS is running
IF VAL( DOSVER() ) < 3.1
? "This software requires DOS 3.1 or later."
FILEATTR
CALL FILEATTR WITH <filespec>,<attributes>
Turns file attributes on or off
FILEREAD()
FILEREAD( <filespec> )
<expC> contents of disk text file
Read a text file from disk
FILES()
<expN> number of files on FILES= line in Config.sys
Determine setting of FILES in Config.sys
FILESIZE()
FILESIZE( <filespec> )
<expN> size of file in bytes
Determine amount of disk space occupied by a file
FILEWRITE()
FILEWRITE( <filespec>,<text> )
<expC> "DONE" is written successfully
Write a text file to disk
FLOCK()
Returns a logical .T. if the lock was successful
Attempts to lock a database(.dbt,.ntx in a shared enviroment
so two users cannot access a database at the same time
GETENV()
OPERATING SYSTEM ENVIRONMENT VARIABLES
ISCOLOR()
Returns a logical .T. if a color display is installed and
a logical .F. for a monochrome display
LASTDRIVE()
<expC> letter of the drive specified on LASTDRIVE= line
in Config.sys
Determine setting of LASTDRIVE in Config.sys
LOAD
LOAD <binary filename>[.<extension>]
Places a binary file into memory where it can be executed
with the CALL command
LOCK()
Returns a logical .T. if the lock is successful
Used to attempt to lock a database(.dbt,.ntx in a shared
environment)so two users cannot access database at same time
MEMORY()
Returns the available memory in K bytes.  MEMORY(0) returns
the free pool space for data manipulation
NETERR()
Will return .F. if a USE,USE..EXCLUSIVE or APPEND BLANK
fails in a network environment
Detects network errors
Command          Cause of Failure
USE             USE...EXCLUSIVE by another process
USE..EXCLUSIVE  USE...EXCLUSIVE by another process
APPEND BLANK    FLOCK() by another process or two
APPEND BLANK attempt at the same time
NETNAME()
Returns the text of the computer name when Networking
If name never set, a null string is returned.
Works with IBM PC Local Area Network
USE Netname INDEX By_name
SEEK NETNAME()
IF FOUND()
? "Welcome" +NETNAME()
OFF()
OFF( <memvar name> )
<expC> variable's offset address as hexadecimal string
Determine the offset portion of a variable's memory address
OFFSET
CALL OFFSET WITH <memvar>,<return memvar>
<expC> offset address of <memvar name> as a hexadecimal
string
Determine the location of a variable in memory
OS()
Returns the name of the version of DOS under which the
program is running
Determine the name of the operating system
? OS()
DOS 3.10
PEEK...()
<exp> value of data type at requested location
Read data stored at specified memory locations
PEEKBYTE() 1-byte hex    PEEKDBL()  8-byte FP num
PEEKCHAR() 1-byte ascii  PEEKSTR()  Nul-terminated ascii
PEEKINT()  2-byte int
PEEKLONG() 4-byte int
POKEBYTE()
WRITE HEX BYTE TO MEMORY ADDRESS
REG()
REG( <register name> )
<expC> contents of specified register as hex string
Examine contents of CPU registers
RLOCK()
Returns logical True (.T.) when the lock attempt was
successful.
Attempts to lock current database record.  If the record was
locked by same user, RLOCK() will release the lock
ROMBIOS
CALL ROMBIOS WITH <interrupt>,<registers>,<flags>
Provide access to ROM BIOS function calls
SEG()
SEG( <memvar name> )
<expC> variable's segment address as hexadecimal string
Determine the segment portion of a variable's memory address
SEGMENT
CALL SEGMENT WITH <memvar>,<return memvar>
<expC> segment address of <memvar name> as a hexadecimal
Determine locatiob of a variable in memory
SET EXCLUSIVE
SET EXCLUSIVE ON/off
Determines the way in which database and related memo
and index files are opened.  The default setting is ON.
ON  = Non-shared files
OFF = Shared files
TIME()
TIME
TIME returns the system time in the format hh:mm:ss
UNLOCK
UNLOCK [ALL]
Release file/record lock, UNLOCK ALL releases ALL locks
USE...EXCLUSIVE
USE <filename> [INDEX <index file> EXCLUSIVE[ALIAS <name>]
EXCLUSIVE opens file for exclusive(non-shared) use
USE Accounts EXCLUSIVE
IF .NOT. NETERR()
SET INDEX TO Acct_ID
DTOSS()
DTOSS(<days>)
<expN> number of seconds that equals <days>
Convert days to seconds
HTOSS()
HTOSS( <hours>)
<expN> number of seconds that equal <hours>
Convert hours to seconds
ISTSTIME()
ISTSTIME( <time string> )
<expC> time string in the format "HH:MM:SS", the same as
the TIME() function
Determine if the time string is valid
MAKETIME()
MAKETIME(<time string>)
<expC> time string valid in format and contents
Make an invalid time string valid
MTOSS()
MTOSS( <minutes> )
<expN> number of seconds that equal <minutes>
Convert minutes to seconds
minutes = 285.61
secs    = MTOSS( minutes )
SECONDS()
Returns system time as <seconds>.<hundredths>
start = SECONDS()
DO process
elasped = SECONDS() - Start
? "Process took "+ STR(Elasped) + " seconds"
SSTOD()
SSTOD( <seconds> )
<expN> number of days that equal <seconds>
Convert seconds to days
SSTOH()
SSTOH( <seconds> )
<expN> number of hours that equal <seconds>
Convert seconds to hours
SSTOM()
SSTOM( <seconds> )
<expN> number of minutes that equal <seconds>
Convert seconds to minutes
TIMESTR()
TIMESTR( <seconds> )
returned by the TIME() function
Convert seconds to a time string
TSTOH()
TSTOH( <time string> )
<expN> number of hours that equal <time string>
Convert time string to hours
TSTOM()
TSTOM( <time string> )
<expN> number of minutes that equal <time string>
Convert time string to minutes
TSTOS()
TSTOS( <time string>)
<expN> number of seconds that equal <time string>
Convert time string to seconds
COPY STRUCTURE
COPY STRUCTURE TO <file> [FIELDS<field list>]
Duplicates structure of file in USE to a new database
DESCEND()
DESCEND(<expD>)
Allows indexes of any field type to be created in Descending
order
INDEX ON DESCEND(sales_date) TO date_dwn
SEEK DESCEND(find_date)
EXTRA.LIB
??
?? <exp list>
Displays an expression list on the current line of the CRT
==
OPERATOR
<exp> == <exp>
Compares character types for a perfect match
!
DO WHILE ! .T.
The "!" may be used in place of the logical .NOT.
&&
&& <text>
Allows comments on same line as command
SOUNDEX()
SOUNDEX( <expC> )
<expC> soundex code as a four-character string in the
format "A999"
Search for similar sounding names that are spelled
differently